A database may provide a file repository that can be accessed via a variety of file system-based interfaces, such as those utilizing HTTP/WebDAV (Web Distributed Authoring and Versioning) or NFS (Network File System). Through such interfaces to the repository, a file is located, for example, via its URL or path and the repository is exposed as a hierarchical set of files and folders (e.g., directories). Further, data-oriented access mechanisms can be used to access a file repository, which expose the repository as a flat set of files that can be queried based on file content or attributes.
Files can be versioned, for example, in order to keep a record of changes to files, to provide the option to revert to an older version of a file, and to get information on who made each change to a file and the progression of changes to the file. When several users are working collaboratively on a set of files organized in a folder hierarchy, the users need to be isolated from each other's in-progress changes. For example, user U1 may be working on a project that needs to change files f1 and f2, and user U2 may need to use these files while working on another project. However, until U1 has completed changes to f1 and f2, U2 should see only the older versions of both files. Thus, a versioned repository allows users to checkout files, possibly update the files, and check the files in once the updates are completed. In this scenario, U2 does not want to see U1's checked-out versions of files.
In some scenarios, it may also be necessary for U1's changes to go through an approval/testing process after check-in to the repository. Other users should be isolated from even checked-in versions until these versions are approved. In such scenarios, there is usually an application that is involved in marking files as approved or tested to indicate that these file versions can be exposed to all users.
Traditional versioning systems provide isolation using workspaces, an abstraction used to identify and maintain separate folder hierarchies for different users so that multiple users can work in isolation on a set of resources, where the term “resource” is generally used herein to include a file. An extension to WebDAV, referred to as “DeltaV,” is a network protocol that provides facilities for remote versioning and configuration management of documents stored on Web servers, which often interface with a file system-like repository for content management purposes. DeltaV is described in “DeltaV: Adding Versioning to the Web; WWW10 Tutorial Notes” (referred to herein as “the DeltaV reference”) available from the WebDAV.org organization; the entire contents of which is incorporated by this reference for all purposes as if fully disclosed herein.
As described in the DeltaV reference, a workspace is created by creating a separate version-controlled resource for each workspace. Thus, a workspace is essentially a copy of a set of resources in which a user can work in isolation from other users, where users' interactions are in the form of branches in the version history. Use of traditional workspaces provides a high degree of isolation, but has associated overhead costs associated with duplicative directories. Further, use of traditional workspaces does not provide for readily sharing versions that need to be exposed to all users. For example, when a file is checked out from the repository, modified, and checked back into the repository, a reference in every user workspace that includes that file needs to be changed. Hence, there is a need for separate work areas for users to provide necessary isolation, without incurring the overhead of separate, and often duplicative, folder hierarchies and the overhead associated with changing a large number of user workspace references.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.